page.tsx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. "use client";
  2. import { FC, PropsWithChildren, useState } from "react";
  3. import HeaderBack from "@/components/HeaderBack";
  4. import ButtonOwn from "@/components/ButtonOwn";
  5. import DomainFooter from "@/components/DomainFooter";
  6. import './page.scss'
  7. import React from "react";
  8. import { phoneRegex } from "@/utils";
  9. import {getCheckUserPhoneExistApi} from "@/api/user";
  10. import { useRouter } from "@/i18n";
  11. import { useTranslations } from "next-intl";
  12. interface Props {}
  13. const ResetPhone: FC<PropsWithChildren<Props>> = () => {
  14. const t = useTranslations("ResetPhonePage");
  15. const router:any = useRouter()
  16. let [userPhone, setUserPhone] = useState('')
  17. const changeUserPhone = (e: { target: { value: any; }; }) => {
  18. setUserPhone(e.target.value)
  19. }
  20. let [msgError, setMsgError] = useState('')
  21. const blurVerifyPhone = (e: { target: { value: any; }; }) => {
  22. const {value} = e.target;
  23. if (value == '') {
  24. setMsgError('')
  25. return
  26. }
  27. if (value && !phoneRegex(value)) {
  28. setMsgError(t('enterCorrectphone'))
  29. return
  30. }
  31. setMsgError('')
  32. }
  33. const checkUserPhoneRequest = async () => {
  34. if(!phoneRegex(userPhone)) return
  35. let { code, msg, data } = await getCheckUserPhoneExistApi({user_phone: userPhone})
  36. if(code == 200 && data) {
  37. router.push(`/verification?userPhone=${userPhone}`)
  38. return
  39. }
  40. setMsgError(msg)
  41. }
  42. return (
  43. <div className="resetPhone-box">
  44. <HeaderBack />
  45. <div className="main">
  46. <div className="title">
  47. <h2>{t('h2')}</h2>
  48. <div>{t('h3')}</div>
  49. </div>
  50. <div className="phoneInput">
  51. <span className="after">{t('areaCode')}</span>
  52. <input type="tel" value={userPhone} onChange={changeUserPhone} onBlur={blurVerifyPhone} placeholder={t('Celular')} maxLength={11} />
  53. </div>
  54. { msgError && <div className="tips"> {msgError} </div> }
  55. <div className="btnContent">
  56. <ButtonOwn active={userPhone.length == 11} callbackFun={checkUserPhoneRequest}>{t('Continuar')}</ButtonOwn>
  57. </div>
  58. </div>
  59. <DomainFooter />
  60. </div>
  61. );
  62. };
  63. export default ResetPhone;